home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / machserver / 1.098 / include / dev / hppi.h < prev    next >
C/C++ Source or Header  |  1991-08-12  |  15KB  |  675 lines

  1. /*
  2.  * hppi.h --
  3.  *
  4.  *    Declarations for commands specific to the Thinking Machines
  5.  *    HIPPI-S and HIPPI-D boards.
  6.  *
  7.  * Copyright 1990 Regents of the University of California
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /sprite/src/lib/include/dev/RCS/hppi.h,v 1.8 91/08/07 15:19:19 elm Exp Locker: elm $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _HPPI
  20. #define _HPPI
  21.  
  22. /*
  23.  * IOControl calls for the HPPI interface.
  24.  */
  25. #define IOC_HPPI        (20 << 16)
  26.  
  27. #define IOC_HPPI_LOAD            (IOC_HPPI | 2)
  28. #define IOC_HPPI_GO            (IOC_HPPI | 3)
  29. #define IOC_HPPI_DEBUG            (IOC_HPPI | 4)
  30. #define IOC_HPPI_TRACE            (IOC_HPPI | 5)
  31. #define IOC_HPPI_MAP_THRESHOLD        (IOC_HPPI | 6)
  32. #define IOC_HPPI_ECHO            (IOC_HPPI | 7)
  33. #define IOC_HPPI_RESET            (IOC_HPPI | 8)
  34. #define IOC_HPPI_SRC_RESET        (IOC_HPPI | 9)
  35. #define IOC_HPPI_DST_RESET        (IOC_HPPI | 10)
  36. #define IOC_HPPI_HARD_RESET        (IOC_HPPI | 11)
  37. #define IOC_HPPI_SETUP            (IOC_HPPI | 12)
  38. #define IOC_HPPI_GET_ADAP_INFO        (IOC_HPPI | 13)
  39. #define IOC_HPPI_DIAG            (IOC_HPPI | 14)
  40. #define IOC_HPPI_EXTENDED_DIAG        (IOC_HPPI | 15)
  41. #define IOC_HPPI_START            (IOC_HPPI | 16)
  42. #define IOC_HPPI_COLLECT_STATS        (IOC_HPPI | 17)
  43. #define IOC_HPPI_GET_STATS        (IOC_HPPI | 18)
  44. #define IOC_HPPI_CLEAR_STATS        (IOC_HPPI | 19)
  45. #define IOC_HPPI_SET_FLAGS        (IOC_HPPI | 20)
  46. #define IOC_HPPI_GET_FLAGS        (IOC_HPPI | 21)
  47. #define IOC_HPPI_RESET_FLAGS        (IOC_HPPI | 22)
  48. #define IOC_HPPI_SOURCE            (IOC_HPPI | 23)
  49. #define IOC_HPPI_SINK            (IOC_HPPI | 24)
  50. #define IOC_HPPI_SEND_DGRAM        (IOC_HPPI | 25)
  51. #define IOC_HPPI_ADDRESS        (IOC_HPPI | 26)
  52. #define IOC_HPPI_SRC_ROM_CMD        (IOC_HPPI | 27)
  53. #define IOC_HPPI_DST_ROM_CMD        (IOC_HPPI | 28)
  54. #define IOC_HPPI_WRITE_REG        (IOC_HPPI | 29)
  55. #define IOC_HPPI_READ_REG        (IOC_HPPI | 30)
  56. #define IOC_HPPI_READ_BOARD_WORD    (IOC_HPPI | 31)
  57. #define IOC_HPPI_WRITE_BOARD_WORD    (IOC_HPPI | 32)
  58. #define IOC_HPPI_SET_BOARD_FLAGS    (IOC_HPPI | 33)
  59.  
  60. typedef unsigned short uint16;
  61. typedef unsigned long uint32;
  62.  
  63. typedef struct Dev_HppiHdr {
  64.     unsigned char opcode;
  65.     unsigned char serial;
  66.     uint16 magic;
  67. } Dev_HppiCmdHdr;
  68.  
  69. typedef struct Dev_HppiSetTrace {
  70.     Dev_HppiCmdHdr hdr;
  71.     uint32 level;
  72. } Dev_HppiSetTrace;
  73.  
  74. typedef struct Dev_HppiDumpTrace {
  75.     Dev_HppiCmdHdr hdr;
  76. } Dev_HppiDumpTrace;
  77.  
  78. typedef struct Dev_HppiClearTrace {
  79.     Dev_HppiCmdHdr hdr;
  80. } Dev_HppiClearTrace;
  81.  
  82. typedef struct Dev_HppiOutput {
  83.     Dev_HppiCmdHdr hdr;
  84.     uint32 fifoDataSize;
  85.     uint32 iopDataSize;
  86. } Dev_HppiOutput;
  87.  
  88. typedef struct Dev_HppiOutputTrace {
  89.     Dev_HppiCmdHdr hdr;
  90.     uint32 fifoDataSize;
  91.     uint32 iopDataSize;
  92. } Dev_HppiOutputTrace;
  93.  
  94. typedef struct Dev_HppiReset {
  95.     Dev_HppiCmdHdr hdr;
  96. } Dev_HppiReset;
  97.  
  98. typedef struct Dev_HppiScatterGatherElement {
  99.     uint32 address;
  100.     uint32 size;
  101. } Dev_HppiScatterGatherElement;
  102.  
  103. typedef struct Dev_HppiScatterGather {
  104.     Dev_HppiCmdHdr hdr;
  105.     uint16 size;
  106.     uint16 tag;
  107.     Dev_HppiScatterGatherElement element[128];
  108. } Dev_HppiScatterGather;
  109.  
  110. typedef struct Dev_HppiScatterGatherTrace {
  111.     Dev_HppiCmdHdr hdr;
  112.     uint16 size;
  113.     uint16 tag;
  114.     Dev_HppiScatterGatherElement element[128];
  115. } Dev_HppiScatterGatherTrace;
  116.  
  117. typedef struct Dev_HppiSetup {
  118.     Dev_HppiCmdHdr hdr;
  119.     uint32 reqBlockSize;
  120.     uint32 queueAddress;
  121.     uint32 queueSize;
  122. } Dev_HppiSetup;
  123.  
  124. typedef struct Dev_HppiDMAInfo {
  125.     unsigned char    cmd;        /* The DMA command.  See below. */
  126.     unsigned char    id;        /* Transaction id. Set to 0. */
  127.     unsigned short    VCref;        /* VC reference. Set to 0. */
  128.     unsigned int    offset;        /* Buffer offset. Set to 0. */
  129.     unsigned int    reference;    /* Unused. */
  130.     unsigned int    length;        /* Length of the DMA (size of the
  131.                      * XRB minus this structure). */
  132. } Dev_HppiDMAInfo;
  133.  
  134. typedef struct Dev_HppiErrorMsg {
  135.     uint32 magic;
  136.     uint32 errorType;
  137.     uint32 errorInfoLength;        /* # of words that follow which
  138.                      * describe the error that occurred */
  139. } Dev_HppiErrorMsg;
  140.  
  141. typedef struct Dev_HppiCopyDataMsg {
  142.     uint16 size;
  143.     uint16 magic;
  144.     Dev_HppiDMAInfo dmaWord;
  145.     Dev_HppiScatterGatherElement element[128];
  146. } Dev_HppiCopyDataMsg;
  147.  
  148. typedef struct Dev_HppiDoDMA {
  149.     uint16 size;
  150.     uint16 magic;
  151.     uint32 vmeAddress;
  152. } Dev_HppiDoDMA;
  153.  
  154. typedef struct Dev_HppiRegCmd {
  155.     int        board;
  156.     uint32    offset;
  157.     uint32    value;
  158. } Dev_HppiRegCmd;
  159.  
  160. typedef struct Dev_HppiGo {
  161.     int        board;
  162.     uint32    startAddress;
  163. } Dev_HppiGo;
  164.  
  165. typedef struct Dev_HppiLoadHdr {
  166.     int        board;
  167.     uint32    startAddress;
  168.     uint32    size;
  169. } Dev_HppiLoadHdr;
  170.  
  171. typedef struct Dev_HppiMemory {
  172.     Dev_HppiCmdHdr hdr;
  173.     uint32 address;
  174.     uint32 value;
  175. } Dev_HppiMemory;
  176.  
  177. typedef struct Dev_HppiSetBoardFlags {
  178.     Dev_HppiCmdHdr hdr;
  179.     uint32 flags;
  180. } Dev_HppiSetBoardFlags;
  181.  
  182. #define DEV_HPPI_FLAG_DEBUG        (1 << 0)
  183. #define DEV_HPPI_FLAG_LOOPBACK_PORT    (1 << 1)
  184. #define DEV_HPPI_FLAG_STANDARD_PORT    (1 << 2)
  185. #define DEV_HPPI_FLAG_ABORT_CONN_ON_ERROR (1 << 3)
  186. #define    DEV_HPPI_FLAG_DEBUG_DATA    (1 << 4)
  187. #define    DEV_HPPI_FLAG_DEBUG_PROC    (1 << 5)
  188. #define DEV_HPPI_FLAG_DEBUG_MISC    (1 << 6)
  189. #define DEV_HPPI_FLAG_XBOARD_SLOT_SHIFT    (7)
  190. #define    DEV_HPPI_FLAG_XBOARD_SLOT_MASK    (7 << DEV_HPPI_FLAG_XBOARD_SLOT_SHIFT)
  191.  
  192. #define DEV_HPPI_SRC_BOARD        0x1
  193. #define DEV_HPPI_DST_BOARD        0x2
  194. #define DEV_HPPI_IOP_BOARD        0x10
  195.  
  196. #define    DEV_HPPI_SRC_MAGIC        0xfade
  197. #define DEV_HPPI_DEST_MAGIC        0xcafe
  198. #define DEV_HPPI_ERR_MAGIC        0xdeadfad
  199. #define DEV_HPPI_COPY_MAGIC        0xface
  200. #define DEV_HPPI_DMA_MAGIC        0xaced
  201.  
  202. #define DEV_HPPI_SET_TRACE        0x00
  203. #define DEV_HPPI_DUMP_TRACE        0x01
  204. #define DEV_HPPI_CLEAR_TRACE        0x02
  205. #define DEV_HPPI_OUTPUT            0x03
  206. #define DEV_HPPI_OUTPUT_TRACE        0x43
  207. #define DEV_HPPI_RESET            0x04
  208. #define DEV_HPPI_SCATTER_GATHER        0x05
  209. #define    DEV_HPPI_SCATTER_GATHER_TRACE    0x45
  210. #define DEV_HPPI_SETUP            0x06
  211. #define DEV_HPPI_READ_MEMORY        0X07
  212. #define DEV_HPPI_WRITE_MEMORY        0x08
  213. #define DEV_HPPI_SET_BOARD_FLAGS    0x09
  214. #define    DEV_HPPI_OUTPUT_TO_IOP        0x0a
  215. #define    DEV_HPPI_INPUT_FROM_IOP        0x0b
  216. #define DEV_HPPI_MAX_ROM_CMD_SIZE    1000
  217. #define DEV_HPPI_LOAD_REQUEST        0
  218. #define DEV_HPPI_GO_REQUEST        0
  219.  
  220. /*
  221.  * Interrupt bits for the HPPI-D board
  222.  */
  223. #define DEV_HPPI_DST_INTR_CBIAVAIL    0x40    /* CBI cmd register avail */
  224. #define DEV_HPPI_DST_INTR_GEN        0x20    /* generic interrupt */
  225. #define DEV_HPPI_DST_INTR_PARITY    0x10    /* parity error occurred */
  226. #define DEV_HPPI_DST_INTR_ACCESS    0x08    /* access error occurred */
  227. #define DEV_HPPI_DST_INTR_IFIFO_EMPTY    0x04    /* data input fifo empty */
  228. #define DEV_HPPI_DST_INTR_OFIFO_READY    0x02    /* data output fifo has data */
  229. #define DEV_HPPI_DST_INTR_CBIRESPONSE    0x01    /* CBI response reg written */
  230. #define DEV_HPPI_DST_INTR_ALL        (DEV_HPPI_DST_INTR_CBIAVAIL | \
  231.                      DEV_HPPI_DST_INTR_GEN | \
  232.                      DEV_HPPI_DST_INTR_PARITY | \
  233.                      DEV_HPPI_DST_INTR_ACCESS | \
  234.                      DEV_HPPI_DST_INTR_IFIFO_EMPTY | \
  235.                      DEV_HPPI_DST_INTR_OFIFO_READY | \
  236.                      DEV_HPPI_DST_INTR_CBIRESPONSE)
  237.  
  238. #define DEV_HPPI_OFIFO_HF        (1 << 21)
  239. #define DEV_HPPI_OFIFO_FULL        (1 << 20)
  240. #define DEV_HPPI_OFIFO_EMPTY        (1 << 19)
  241. #define DEV_HPPI_IFIFO_HF        (1 << 18)
  242. #define DEV_HPPI_IFIFO_FULL        (1 << 17)
  243. #define DEV_HPPI_IFIFO_EMPTY        (1 << 16)
  244.  
  245. #define DEV_HPPI_MAX_ROM_REPLY        0x8
  246.  
  247. #define DEV_HPPI_IFIFO_DEPTH        1024
  248.  
  249. /*
  250.  * Bits in the configuration register that enable various
  251.  * interrupts.
  252.  */
  253. #define DEV_HPPI_INTR_ENB_29K        (1 << 28)    /* 29K interrupts */
  254. #define DEV_HPPI_INTR_ENB_PARITY    (1 << 27)    /* SM DOUT parity */
  255. #define DEV_HPPI_INTR_ENB_ACCESS_ERROR    (1 << 26)    /* VMEbus access error
  256.                              * has occurred */
  257. #define DEV_HPPI_INTR_ENB_IFIFO_EMPTY    (1 << 25)    /* input fifo is
  258.                              * empty */
  259. #define DEV_HPPI_INTR_ENB_OFIFO_DATA    (1 << 24)    /* output fifo has
  260.                              * data */
  261. #define DEV_HPPI_INTR_ENB        (1 << 11)    /* This bit must be
  262.                              * set to enable
  263.                              * any interrupts */
  264. #define DEV_HPPI_INTR_ROAK        (1 << 21)    /* interrupts should
  265.                                release on ack */
  266. #define DEV_HPPI_BUS_REQ_SHIFT        19        /* shift left this
  267.                              * many places for
  268.                              * bus req level */
  269. /*
  270.  * These are the ROM commands.
  271.  */
  272.  
  273. #define    DEV_HPPI_FIRST_DIAG_CODE    0x80
  274. #define    DEV_HPPI_REPORT_PU_STATUS    REQ_ID_FIRST_DIAG_CODE
  275. #define    DEV_HPPI_GET_MEMORY        0x81
  276. #define    DEV_HPPI_PUT_MEMORY        0x82
  277. #define    DEV_HPPI_DO_CHECKSUM        0x83
  278. #define    DEV_HPPI_TEST_CHECKSUM        0x84
  279. #define    DEV_HPPI_FILL_MEMORY        0x85
  280. #define    DEV_HPPI_VERIFY_MEMORY        0x86
  281. #define    DEV_HPPI_START_CODES        0x87
  282. #define    DEV_HPPI_ECHO            0x88
  283. #define    DEV_HPPI_LOOP_WRITE        0x89
  284. #define    DEV_HPPI_LOOP_READ        0x8a
  285. #define    DEV_HPPI_TEST_RAM        0x8b
  286. #define    DEV_HPPI_TEST_AL        0x8c    /* test address lines    */
  287. #define    DEV_HPPI_BYTE_TEST        0x8d    /* test byte access    */
  288. #define    DEV_HPPI_MONITOR_REGISTER    0x8e    /* continuously monitor    */
  289. #define DEV_HPPI_SIZE_SMO_FIFO        0x8f    /* measure SM Data Out Fifo */
  290.  
  291. #define    DEV_HPPI_END_CONNECTION        0xa0    /* event bit 13        */
  292. #define    DEV_HPPI_MAKE_CONNECTION    0xa1    /* event bit 12        */
  293. #define    DEV_HPPI_SEND_BURST        0xa2    /* send test burst data    */
  294. #define    DEV_HPPI_ENTER_RECEIVE_MODE    0xa3
  295. #define    DEV_HPPI_BURST_DATA        0xa4
  296. #define    DEV_HPPI_HPPIS_SESSION        0xa5    /* do a source session    */
  297.  
  298. #define    DEV_HPPI_WRITE_FIFO        0xa6    /* write to fifo    */
  299. #define    DEV_HPPI_READ_FIFO        0xa7    /* read from fifo    */
  300.  
  301. #define    DEV_HPPI_NAK            -1
  302.  
  303.  
  304. typedef    struct
  305. {
  306. int    length;
  307. int    response_id;
  308. int    caller_pid;
  309. int    status;
  310. int    error_code;
  311. int    content [1]; /* up to fifo size */
  312. }PACKET_RESPONSE;
  313.  
  314. typedef    struct
  315. {
  316. int    length;
  317. int    command_id;
  318. int    caller_id;
  319. int    content [1]; /* up to fifo size */
  320. }PACKET_COMMAND;
  321. /*
  322.  * Structures for the various ROM commands and responses.
  323.  */
  324. typedef    struct Dev_HppiRomCmdHdr {
  325.     int        length;
  326.     int        commandId;
  327.     int        callerPid;
  328. } Dev_HppiRomCmdHdr;
  329.  
  330. typedef    struct Dev_HppiRomReplyHdr {
  331.     int        length;
  332.     int        responseId;
  333.     int        callerPid;
  334.     int        status;
  335.     int        errorCode;
  336. } Dev_HppiRomReplyHdr;
  337.  
  338. #define    ID_SIZE        64
  339. #define    TYPE_ROM    1
  340. #define    TYPE_RAM    2
  341.  
  342. typedef    struct Dev_HppiRomStatusReport {
  343.     Dev_HppiRomReplyHdr    hdr;
  344.     int            executiveType;
  345.     int            version;
  346.     char        id[ID_SIZE];
  347. } Dev_HppiRomStatusReport;
  348.  
  349. typedef    struct Dev_HppiRomWrite {
  350.     Dev_HppiRomCmdHdr    hdr;
  351.     int            writeAddress;
  352.     int            writeWords;
  353.     int            data[1];        /* up to fifo size */
  354. } Dev_HppiRomWrite;
  355.  
  356. typedef    struct Dev_HppiRomWriteReply {
  357.     Dev_HppiRomReplyHdr    hdr;
  358.     int            addressWritten;
  359.     int            wordsWritten;
  360. } Dev_HppiRomWriteReply;
  361.  
  362. typedef    struct Dev_HppiRomRead {
  363.     Dev_HppiRomCmdHdr    hdr;
  364.     int            readAddress;
  365.     int            readWords;
  366. } Dev_HppiRomRead;
  367.  
  368. typedef    struct Dev_HppiRomReadReply {
  369.     Dev_HppiRomReplyHdr    hdr;
  370.     int            addressRead;
  371.     int            wordsRead;
  372.     int            dataRead [1];        /* up to fifo size */
  373. } Dev_HppiRomReadReply;
  374.  
  375. typedef    struct Dev_HppiRomGo {
  376.     Dev_HppiRomCmdHdr    hdr;
  377.     int            startAddress;
  378. } Dev_HppiRomGo;
  379.  
  380. typedef    struct Dev_HppiRomGoReply {
  381.     Dev_HppiRomReplyHdr    hdr;
  382.     int            startAddress;
  383. } Dev_HppiRomGoReply;
  384.  
  385. #if 0
  386. typedef    struct
  387. {
  388. int    length;
  389. int    response_id;
  390. int    caller_pid;
  391. int    address_to_fill;
  392. int    words_to_fill;
  393. int    pattern_to_fill;
  394. int    fill_increment;
  395. }FILL_COMMAND;
  396.  
  397. typedef    struct
  398. {
  399. int    length;
  400. int    response_id;
  401. int    caller_pid;
  402. int    status;
  403. int    error_code;
  404. int    address_filled;
  405. int    words_filled;
  406. int    pattern_filled;
  407. int    fill_increment;
  408. }FILL_RESPONSE;
  409.  
  410. typedef    struct
  411. {
  412. int    length;
  413. int    response_id;
  414. int    caller_pid;
  415. int    address_to_verify;
  416. int      words_to_verify;
  417. int    pattern_to_verify;
  418. int    verify_increment;
  419. }VERIFY_COMMAND;
  420.  
  421. typedef    struct
  422. {
  423. int    length;
  424. int    response_id;
  425. int    caller_pid;
  426. int    status;
  427. int    error_code;
  428. int    address_verified;
  429. int    words_verified;
  430. int    pattern_verified;
  431. int    verify_increment;
  432. int    bad_data;
  433. }VERIFY_RESPONSE;
  434.  
  435. typedef    struct
  436. {
  437. int    length;
  438. int    response_id;
  439. int    caller_pid;
  440. int    start_address;
  441. int    size_to_check;
  442. }CHECKSUM_COMMAND;
  443.  
  444. typedef    struct
  445. {
  446. int    length;
  447. int    response_id;
  448. int    caller_pid;
  449. int    status;
  450. int    error_code;
  451. int    start_address;
  452. int    size_to_check;
  453. int    checksum;
  454. }CHECKSUM_RESPONSE;
  455.  
  456. typedef    struct
  457. {
  458. int    length;
  459. int    response_id;
  460. int    caller_pid;
  461. int    start_address;
  462. int    size_to_check;
  463. }TEST_CHECKSUM_COMMAND;
  464.  
  465. typedef    struct
  466. {
  467. int    length;
  468. int    response_id;
  469. int    caller_pid;
  470. int    status;
  471. int    error_code;
  472. int    start_address;
  473. int    size_to_check;
  474. int    checksum;
  475. int    old_checksum;
  476. }TEST_CHECKSUM_RESPONSE;
  477.  
  478. typedef    struct
  479. {
  480. COMMAND_HEADER    header;
  481. int        address_to_write;
  482. int        write_pattern;
  483. int        delay_between_write;
  484. } WRITE_LOOP_COMMAND;
  485.  
  486.  
  487. typedef    struct
  488. {
  489. RESPONSE_HEADER    header;
  490. int        address_to_write;
  491. int        write_pattern;
  492. int        delay_between_write;
  493. } WRITE_LOOP_RESPONSE;
  494.  
  495. typedef    struct
  496. {
  497. COMMAND_HEADER    header;
  498. int        address_to_read;
  499. int        delay_between_read;
  500. BOOLEAN        send_read_data_to_host;
  501. } READ_LOOP_COMMAND;
  502.  
  503. typedef    struct
  504. {
  505. RESPONSE_HEADER    header;
  506. int        address_to_read;
  507. int            delay_between_read;
  508. int        data_just_read;
  509. } READ_LOOP_RESPONSE;
  510.  
  511. typedef    struct
  512. {
  513. COMMAND_HEADER    header;
  514. int        start_addr;
  515. int        stop_addr;
  516. } TEST_RAM_COMMAND;
  517.  
  518. typedef    struct
  519. {
  520. RESPONSE_HEADER    header;
  521. int        failed_addr;
  522. int        read_back;
  523. int        expected;
  524. } TEST_RAM_RESPONSE;
  525.  
  526. typedef    struct
  527. {
  528. COMMAND_HEADER    header;
  529. int        base_address;
  530. int        stop_address;
  531. } TEST_AL_COMMAND;
  532.  
  533. typedef    struct
  534. {
  535. RESPONSE_HEADER    header;
  536. int        failed_addr;
  537. } TEST_AL_RESPONSE;
  538.  
  539. typedef    struct
  540. {
  541. COMMAND_HEADER    header;
  542. int        location_to_test;
  543. } BYTE_TEST_COMMAND;
  544.  
  545. typedef struct
  546. {
  547. RESPONSE_HEADER    header;
  548. int        failed_byte;
  549. int        expected;
  550. int        got;
  551. } BYTE_TEST_RESPONSE;
  552.  
  553. typedef    struct
  554. {
  555. int    length;
  556. int    command_id;
  557. int    caller_pid;
  558. int    address_to_monitor;
  559. } MONITOR_COMMAND;
  560.  
  561. typedef    struct
  562. {
  563. RESPONSE_HEADER    response;
  564. int    address_to_monitor;
  565. int    value_of_register;
  566. } MONITOR_RESPONSE;
  567.  
  568. typedef struct
  569. {
  570. COMMAND_HEADER header;
  571. int smi_fifo_size;
  572. } SIZE_SMO_FIFO_COMMAND;
  573.  
  574. typedef struct
  575. {
  576. RESPONSE_HEADER response;
  577. int smo_fifo_size;
  578. } SIZE_SMO_FIFO_RESPONSE;
  579.  
  580. typedef    struct
  581. {
  582. int    length;
  583. int    command_id;
  584. int    caller_pid;
  585. int    i_field;
  586. int    usleep_counts;
  587. } MAKE_CONNECTION_COMMAND;
  588.  
  589. typedef    struct
  590. {
  591. RESPONSE_HEADER    response;
  592. int    hppi_status_register;
  593. } MAKE_CONNECTION_RESPONSE;
  594.  
  595. typedef    struct
  596. {
  597. int    length;
  598. int    command_id;
  599. int    caller_pid;
  600. int    priority;
  601. } BREAK_CONNECTION_COMMAND;
  602.  
  603. typedef    struct
  604. {
  605. RESPONSE_HEADER    response;
  606. int    hppi_status_register;
  607. } BREAK_CONNECTION_RESPONSE;
  608.  
  609. typedef    struct
  610. {
  611. int    length;
  612. int    command_id;
  613. int    caller_pid;
  614. int    length_of_short_burst;
  615. int    short_burst_goes_first;
  616. int    full_burst_count;
  617. int    first_data_to_send;
  618. int    increment_factor;
  619. int    ready_timeout_limit;
  620. } SEND_BURST_COMMAND;
  621.  
  622. typedef    struct
  623. {
  624. RESPONSE_HEADER    response;
  625. int    hppi_status_register;
  626. int    burst_sent;
  627. int    burst_number_when_failure_occured;
  628. } SEND_BURST_RESPONSE;
  629.  
  630. typedef    struct
  631. {
  632. int    length;
  633. int    command_id;
  634. int    caller_pid;
  635. int    i_field;
  636. int    length_of_short_burst;
  637. int    short_burst_goes_first;
  638. int    full_burst_count;
  639. int    first_data_to_send;
  640. int    increment_factor;
  641. int    ready_timeout_limit;
  642. } HPPIS_SESSION_COMMAND;
  643.  
  644. typedef    struct
  645. {
  646. RESPONSE_HEADER    response;
  647. int    hppi_status_register;
  648. int    burst_sent;
  649. int    burst_number_when_failure_occured;
  650. } HPPIS_SESSION_RESPONSE;
  651.  
  652. typedef    struct
  653. {
  654. int    length;
  655. int    command_id;
  656. int    caller_pid;
  657. } HPPI_RECEIVE_COMMAND;
  658.  
  659. typedef    struct
  660. {
  661. RESPONSE_HEADER    response;
  662. } HPPI_RECEIVE_RESPONSE;
  663.  
  664. #define    WORDS_IN_FULL_BURST    256
  665.  
  666. typedef    struct
  667. {
  668. RESPONSE_HEADER    response;
  669. int    length_of_burst_recieved;
  670. int    burst_data [WORDS_IN_FULL_BURST];
  671. } BURST_DATA;
  672. #endif
  673.  
  674. #endif /* _HPPI */
  675.